// 分类状态
import {
    topCategory
} from '@/api/constants'
import {
    findAllCategory
} from '@/api/category'
export default {
    namespaced: true,
    state: () => {
        return {
            // 如果默认是[]数组，看不见默认的9个分类，等你数据加载完毕才会看到。
            // 所以：根据常量数据来生成一个默认的顶级分类数据，不会出现空白（没数据的情况）
            cateList: topCategory.map(item => {
                return {
                    name: item
                }
            })
        }
    },
    mutations: {
        getCateList(state, playload) {
            state.cateList = playload
        },
        // 修改当前一级分类下的open数据为true
        show(state, item) {
            const row = state.cateList.find(v => v.id === item.id)
            row.open = true
        },
        // 修改当前一级分类下的open数据为false
        hide(state, item) {
            const row = state.cateList.find(v => v.id === item.id)
            row.open = false
        }

    },
    actions: {
        async getCateListSync({ commit }) {
            const { result } = await findAllCategory()
            result.forEach(item => {
                // 增加一个open属性，用于控制一级分类对应的二级的显示和隐藏
                item.open = false
            })
            commit('getCateList', result)
        }
    }
}